/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vccibernos;

import java.util.*;

/**
 *
 * @author JAVA
 */
public class Alquiler {
    private Date fechaAlquiler;
    private Date fechaFin;
    private Articulo articulo;
    private float precio;
    private List<Promocion> listap;
    private int id;
    
    public float getPrecio() {
        return precio;
    }

    public void setPrecio(float precio) {
        this.precio = precio;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }


    public Alquiler(int id,Date fechaAlquiler, Date fechaFin, Articulo articulo) {
        this.id=id;
        this.fechaAlquiler = fechaAlquiler;
        this.fechaFin = fechaFin;
        this.articulo = articulo;
    }
    
    
    /**
     * Damos de alta un alquiler y comprobamos si el articulo está disponible
     * En caso contrario lanzamos una excepcion
     * Una vez comprobado marcamos el articulo como no disponible.
     * @param fecha
     * @param fechaAlquiler
     * @param fechaFin
     * @param articulo
     * @param total
     * @throws Exception 
     */
    
    
    public Alquiler(Date fechaAlquiler, Date fechaFin, Articulo articulo, float precio) throws Exception {       
        this.fechaAlquiler = fechaAlquiler;
        this.fechaFin = fechaFin;
        this.precio=precio;
        listap=new ArrayList<Promocion>();
        if(articulo.isDisponible())
                this.articulo = articulo;
        else
            throw new Exception("El articulo no está disponible");
        //comprobar si hay alguna promocion para el alquiler
        this.articulo.setDisponible(false);
    }

    public List<Promocion> getListap() {
        return listap;
    }

    public void setListap(List<Promocion> listap) {
        this.listap = listap;
    }

    public Articulo getArticulo() {
        return articulo;
    }

    public void setArticulo(Articulo articulo) {
        this.articulo = articulo;
    }

    public Date getFechaAlquiler() {
        return fechaAlquiler;
    }

    public void setFechaAlquiler(Date fechaAlquiler) {
        this.fechaAlquiler = fechaAlquiler;
    }

    public Date getFechaFin() {
        return fechaFin;
    }

    public void setFechaFin(Date fechaFin) {
        this.fechaFin = fechaFin;
    }


    /**
     * Para imprimir los alquileres de cada cliente, desde cliente
     * @return 
     */
    @Override
    public String toString() {
        return "\n  ----------------------- \n  ---- Alquiler ----  \n  ----------------------- \n" +"Id: "+id +"\nFecha Alquiler: " + fechaAlquiler + "\n Fecha Fin: " + fechaFin + "\n Articulo: " + articulo.toString() + "\n  ----------------------- \n";
    }
    
    
}
